#ifndef GLDEVICEVERTEXBUFFER_H
#define GLDEVICEVERTEXBUFFER_H

#include "Framework/Prerequisites.h"
#include "Graphics/OpenGL/GLPrerequisites.h"
#include "Graphics/IDeviceVertexBuffer.h"

namespace tyro
{
	namespace Graphics
	{
		class GLDeviceVertexBuffer : public IDeviceVertexBuffer
		{
		public:

			GLDeviceVertexBuffer(IDeviceBufferManagerBase* mgr, size_t vertexSize, size_t numVertices);

			void WriteData(size_t memOffset, size_t length, const void* source);
			void ReadData(size_t memOffset, size_t length, void* destination);
			void* LockImpl(size_t offset, size_t length);
			void UnlockImpl( void );

			GLuint GetBufferID(void) const { return bufferID; }

		protected:
		private:

			GLuint	bufferID;


		};
	}
}
#endif